#ifndef STRUCTURES_H
#define STRUCTURES_H

struct RawMagData
{
    short x;
    short y;
    short z;
};

struct MagnetometrCalibration
{
    short bias[3];
    float matrix[3][3];
};

enum AnglesType
{
    forward,
    in_out,
    right_left,
    up_down,
    wrist
};

enum UM6Adress
{
    UM6_MAG_BIAS_XY     = 0x0F,
    UM6_MAG_BIAS_Z      = 0x10,
    UM6_MAG_CAL_BEGIN   = 0x23,
    UM6_MAG_CAL_END     = 0x2B,

    UM6_MAG_RAW_XY      = 0x5A,
    UM6_MAG_RAW_Z       = 0x5B,
    UM6_QUAT_AB         = 0x64,
    UM6_QUAT_CD         = 0x65,

    UM6_GET_FW_VERSION  = 0xAA,
    UM6_FLASH_COMMIT    = 0xAB,
    UM6_ZERO_GYROS      = 0xAC,
    UM6_RESET_EKF       = 0xAD,
    UM6_GET_DATA        = 0xAE,
    UM6_BAD_CHECKSUM    = 0xFD
};

#endif // STRUCTURES_H
